def user_info(name, age, salary):
    print(f"你的名字是:{name},你的年龄为:{age},工资是:{salary}")


# 方法一 关键字传参
user_info("张三", 26, 6500)
# 方法二 不按照固定顺序传参
user_info(age=28, salary=8540, name="李四")
# 方法三 混用
user_info("王五", salary=4500, age=21)


# 缺省参数(默认参数),当没有传递这个参数时,会使用默认
def user_info2(name, gender="男"):
    print(f"姓名:{name},性别:{gender}")


user_info2("大锤")
user_info2("静香", "女")

# 不定长参数
"""
不定长参数:不定长参数也叫可变参数.用开不确定调用的时候会传递多少个参数(不传参也可以)的场景.
作用:当调用函数时不确定参数个数时，可以使用不定长参数
"""


# 位置传参 传进的所有参数都会被args变量收集，它会根据传进参数的位置合并为一个元组(tuple)，args是元组类型，这就是位置传递
def user_info3(*args):
    print(f"传递的参数是{args},类型是{type(args)}")


user_info3("大雄", "男")


# 参数是“键=值"形式的形式的情况下，所有的“键=值”都会被kwargs接受，同时会根据“键=值”组成字典
def user_info4(**kwargs):
    print(f"传递的参数是{kwargs},类型是{type(kwargs)}")


user_info4(name="大雄", age=18)
